// samsting : this file is auto create.

#ifndef ALIYUN_Ecs_DescribeRouteTablesResponse_H_
#define ALIYUN_Ecs_DescribeRouteTablesResponse_H_

#include "core/acs_response.h"

namespace aliyun { namespace Ecs {

class DescribeRouteTablesResponse : public AcsResponse {
public:
  DescribeRouteTablesResponse();

  class RouteTable {
    friend class DescribeRouteTablesResponse;
  public:

    class RouteEntry {
      friend class DescribeRouteTablesResponse;
      friend class RouteTable;
    public:
      const string& GetRouteTableId(void) const;
      const string& GetDestinationCidrBlock(void) const;
      const string& GetType(void) const;
      const string& GetStatus(void) const;
      const string& GetInstanceId(void) const;
      const string& GetNextHopType(void) const;
    private:
      string RouteTableId_;
      string DestinationCidrBlock_;
      string Type_;
      string Status_;
      string InstanceId_;
      string NextHopType_;
    }; // RouteEntry 

    const std::vector<RouteEntry>& GetRouteEntrys(void) const;
    const string& GetVRouterId(void) const;
    const string& GetRouteTableId(void) const;
    const string& GetRouteTableType(void) const;
    const string& GetCreationTime(void) const;
  private:
    std::vector<RouteEntry> RouteEntrys_;
    string VRouterId_;
    string RouteTableId_;
    string RouteTableType_;
    string CreationTime_;
  }; // RouteTable 

  const std::vector<RouteTable>& GetRouteTables(void) const;
  int  GetTotalCount(void) const;
  int  GetPageNumber(void) const;
  int  GetPageSize(void) const;

private:
  std::vector<RouteTable> RouteTables_;
  int    TotalCount_;
  int    PageNumber_;
  int    PageSize_;

protected:
  const char* BaseKey(void);
  void         UnmarshallerMap(std::map<string, string>& response_map);

};

} } // namespace aliyun { namespace Ecs {

#endif // #ifndef ALIYUN_Ecs_DescribeRouteTablesResponse_H_

// end of file 
